1. Field of the Invention
The present invention relates to systems and methods for transporting digital multimedia signals, such as television programs, to customer equipment, and more particularly to audio-video program distribution systems that convert a plurality of single program transport streams into a multiple program transport stream.
2. Description of the Related Art
Today television programs are distributed digitally using the MPEG2 protocol defined by ISO/IEC 13818-1 standard that describes a method and data format of packetizing compressed digital audio-video information for serial transmission. According to the MPEG2 protocol, the compressed video and audio program data are divided into transport packets having a common length of 188 bytes. The transport packets for the same program form a single program transport stream (SPTS) and when the packets from more than one SPTS, i.e. more than one program, are multiplexed onto a common carrier the result is a multiple program transport stream (MPTS).
Besides the program signal data, each transport packet includes a packet identifier (PID) field containing a value that distinguishes each kind of transport packet for a given program from other kinds, e.g. video packets from audio packets. The MPEG2 transport packets also carry program specific information (PSI), which includes a program association table, a program map table, and a program clock reference. The program map table (PMT) lists the packet identifiers associated with one single program transport stream and the program association table (PAT) lists the packet identifiers for the packets that contain the program map tables for each single program transport stream that has been multiplexed into a given multiple program transport stream. The program clock reference (PCR) contains timing information that enables a decoder to synchronize the program content carried in different packets for the same program, such as matching the audio tracks with the associated video.
In a typical cable television program distribution system 10, such as the one depicted in FIG. 1, the MPEG2 program content is obtained at the system's head end from a plurality of MPEG2 program sources 11-12, such as television networks using earth orbiting satellites, over the air broadcast stations, and other content providers. The MPEG2 program sources 11-12, often include on-demand movies and locally generated programs, such as from a municipal government or a school district. It should be understood that the head end frequently receives a hundred or more programs, each representing a single program transport stream of MPEG2 packets.
As used herein a “program” includes, but is not limited to, television programs, a sequence of video images, a video game, a video image produced by a computer system, and a video image produced from a storage medium.
An Internet protocol (IP) network interface 14 at the head end places a group of MPEG2 packets for the same program into an Internet protocol packet that is then inserted into an Ethernet frame for transmission. The Ethernet frames are sent from the head end over a fiber optic cable of an IP network 16.
FIG. 3 graphically depicts the format of one Ethernet frame. A group of seven MPEG2 transport stream (TS) packets from one of the program sources 11-12 forms the data field of a User Datagram Protocol (UDP) frame. The UDP frame also includes a header that, among other things, contains an identifier denoting the program source from which the UDP data originated and thus the source of the accompanying TS packets. The UDP frame is placed within a standard Internet protocol packet that contains a conventional IP header. In turn, the IP packet is placed within a standard Ethernet frame and is bounded in that frame by a conventional Ethernet header and a conventional Ethernet footer. Each SPTS comprises a sequence of these Ethernet frames carrying the data for the respective program.
Referring again to FIG. 1, the fiber optic cable of the IP network 16 terminates at a cluster of end users. For example, a cluster may be a section of a municipality having approximately 500 homes or a large hotel. At the remote terminus of the of the IP network 16, an IP edge multiplexer 18 (commonly referred to as an “Edge QAM”) extracts the MPEG2 TS packets for each program from the Ethernet frames and uses the TS packets to modulate a radio frequency (RF) carrier for a given television channel that is the carry the associated program. The resultant plurality of modulated RF carriers are combined and fed onto an RF network 20 that usually employs a coaxial cable to distribute the television programs to consumer premises throughout the service area defined by the cluster.
At a consumer premise, the RF network 20 is connected to a separate decoder 21, 22, or 23 which allows the people at that premise to select a particular program by tuning the decoder to the corresponding television channel. The decoder 21-23 either translates the RF television signal on the received channel into another predefined common output channel (e.g., channel 3) or converts the RF television signal into a composite audio-video signal. In either conversion case, the output from the respective decoder 21, 22 or 23 is applied to an associated display device 24, 25 or 26, respectively, which in this instance is a digital television receiver.
With reference to FIG. 2, a conventional IP edge multiplexer 18 comprises an IP network interface 30 to which the fiber optic cable of the IP network 16 connects and which converts the optical signal into an electrical signal carrying the Ethernet frames. The electrical signal is then applied to an IP stack 32 that recovers the MPEG2 transport stream (TS) packets from each Ethernet frame. Those TS packets are then fed to an input buffer 34 in which they are stored temporarily in a manner that identifies their associated program. When data for a particular program is required for further processing one or more of the associated TS packets are read from the input buffer and directed by a router 36 to a channel circuit 38 for the particular television channel that has been designated to carry the respective program. It should be understood that a given television channel can carry several digital television programs at the same time on different sub-channels. Each channel circuit 38 multiplexes the packets of the SPTS's of those individual television programs into a MPTS that then modulates the RF Carrier for the respective television channel.
To simplify the explanation, the transmission of program data through the IP edge multiplexer 18 will be described in the context of one SPTS, with the understanding that TS packets for a plurality of programs are processed sequentially in the same manner. As each Ethernet frame is received, its group of TS packets is extracted and placed into the input buffer 34. The conventional input buffer 34 simultaneously stores groups of transport streams packets from a large number of Ethernet frames and thus for a plurality of separate programs. The input buffer 34 is implemented by a very large random access memory so that all the incoming TS packets can be stored until one can be processed by the respective channel circuit 38. A relatively large amount of buffer memory is required to provide time for the IP edge multiplexer to construct the program specific information, specifically the program association table and the program map table, for the audio-video content being transported. The size of the input buffer varies dynamically based on the amount of incoming data that has to be stored before the channel circuits 38 can process that data.
The IP stack 32 and the input buffer 34 introduce significant delays in the transmission of the TS packets for each program. Specifically, the IP stack 32 introduces an indeterminate and varying delay, which can be in the microseconds range and thereafter the input buffer 34 introduces another delay that can be up to an additional three to four seconds. Because of the magnitude and uncertainty of these delays at any point in time, a considerable latency in the signal processing occurs.
When a TS packet for a particular program is finally read out of the input buffer 34, the router 36 conveys that packet to the appropriate channel circuit 38 for the television channel that has been predefined carry the respective program. Each channel circuit has a similar configuration with one of them being shown in detail in FIG. 2. Specifically, the channel circuit 38 has a multiplexer 40 that requests data from the input buffer 34 at the proper timing rate needed to produce the television channel output signal. Because the RF signal for a standard television channel is able to carry multiple digital television programs at the same time, the multiplexer's function is to create a transport stream containing the TS packets for those multiple programs. Thus, the multiplexer takes TS packets for a single program transport stream and inserts them into a multiple program transport stream for the respective television channel. In the course of that processing the multiplexer utilizes the PCR timing information embedded in each program's SPTS to determine when to insert the TS packets into the multiplex buffer 42. Because of the relatively large and often uncertain dynamically varying delays in the IP stack 32 and the input buffer 34, the internal multiplexer 40 has to restamp the TS packets with a new program clock reference (PCR). The multiplexer 40 also generates a new program map table and a new program association table to ensure proper construction of the MPTS.
In order to create the proper timing of the MPTS, the multiplexer often outputs null packets between the TS packets as necessary so that the output stage 44 can obtain the data at a constant rate that is higher than the rate at which the SPTS packets were received by the multiplexer 40. The resultant sequence of packets from the multiplexer 40 is placed into a multiplex buffer 42 to construct the multiple program transport stream in which single TS packets interspersed with groups of multiple null packets, see the data stream depicted at the bottom of the channel circuit in FIG. 2. The multiplex buffer 42 also enables in order that an output stage 44 can obtain the data at a constant rate that is higher than the rate at which the SPTS packets were received by the multiplexer 40.
The output stage 44 clocks the data packets out of the multiplex buffer 42 at a constant rate and then modulates the appropriate RF carrier for the designated television channel with that data. Because such television signal generation utilizes quadrature amplitude modulation, the this type of IP edge multiplexer is often referred to as an “edge QAM.”
A delay of the magnitude introduced by standard IP edge multiplexers 18 is acceptable for delivery of audio-video content, that is not typically considered to be time sensitive, especially in the case of a standard television program being delivered over a one-way broadcast network.
More recently, however, most cable television systems have been converted to two-way networks in order to provide interactive applications, such as video game playing, graphical menu systems, and on-demand movies with the ability for the viewer to pause and slow the speed at which the program is delivered. Unfortunately, most previous IP edge multiplexers were not fast enough to deliver that kind of programming from the head end in near real-time. Delays encountered in conventional multiplexers produced an unacceptable lag time between when a viewer's control input was sent upstream until the program produced a visual response on the television set.
As a consequence, it is desirable to provide an IP edge multiplexer that has a low latency between receiving a program packet from the optical fiber and applying the program data as an radio frequency channel signal onto the coaxial cable leading to the consumer's premises.